home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / MOR55SRC.ZIP / MORIA / SOURCE / TREASURE.C < prev    next >
C/C++ Source or Header  |  1992-12-07  |  53KB  |  982 lines

  1. /* source/treasure.c: dungeon object definitions
  2.  
  3.    Copyright (c) 1989-92 James E. Wilson, Robert A. Koeneke
  4.  
  5.    This software may be copied and distributed for educational, research, and
  6.    not for profit purposes provided that this copyright and statement are
  7.    included in all such copies. */
  8.  
  9. #include "config.h"
  10. #include "constant.h"
  11. #include "types.h"
  12.  
  13. /* Following are treasure arrays    and variables            */
  14.  
  15. /* Object description:    Objects are defined here.  Each object has
  16.   the following attributes:
  17.     Descriptor : Name of item and formats.
  18.         & is replaced with 'a', 'an', or a number.
  19.         ~ is replaced with null or 's'.
  20.     Character  : Character that represents the item.
  21.     Type value : Value representing the type of object.
  22.     Sub value  : separate value for each item of a type.
  23.         0 - 63: object can not stack
  24.         64 - 127: dungeon object, can stack with other D object
  25.         128 - 191: unused, previously for store items
  26.         192: stack with other iff have same p1 value, always
  27.             treated as individual objects
  28.         193 - 255: object can stack with others iff they have
  29.             the same p1 value, usually considered one group
  30.         Objects which have two type values, e.g. potions and
  31.         scrolls, need to have distinct subvals for
  32.         each item regardless of its tval
  33.     Damage       : amount of damage item can cause.
  34.     Weight       : relative weight of an item.
  35.     Number       : number of items appearing in group.
  36.     To hit       : magical plusses to hit.
  37.     To damage  : magical plusses to damage.
  38.     AC       : objects relative armor class.
  39.         1 is worse than 5 is worse than 10 etc.
  40.     To AC       : Magical bonuses to AC.
  41.     P1       : Catch all for magical abilities such as
  42.              plusses to strength, minuses to searching.
  43.     Flags       : Abilities of object.  Each ability is a
  44.              bit.  Bits 1-31 are used. (Signed integer)
  45.     Level       : Minimum level on which item can be found.
  46.     Cost       : Relative cost of item.
  47.  
  48.     Special Abilities can be added to item by magic_init(),
  49.     found in misc.c.
  50.  
  51.     Scrolls, Potions, and Food:
  52.     Flags is used to define a function which reading/quaffing
  53.     will cause.  Most scrolls and potions have only one bit
  54.     set.  Potions will generally have some food value, found
  55.     in p1.
  56.  
  57.     Wands and Staffs:
  58.     Flags defines a function, p1 contains number of charges
  59.     for item.  p1 is set in magic_init() in misc.c.
  60.  
  61.     Chests:
  62.     Traps are added randomly by magic_init() in misc.c.    */
  63.  
  64. /* Object list (All objects must be defined here)         */
  65.  
  66. #if defined(MACGAME) || defined(RSRC_PART2)
  67. treasure_type *object_list;
  68. #else
  69. treasure_type object_list[MAX_OBJECTS] = {
  70. /* Dungeon items from 0 to MAX_DUNGEON_OBJ */
  71. {"Poison"            ,0x00000001L,    TV_FOOD, ',',    /*  0*/
  72.   500,       0,    64,   1,   1,    0,   0,     0,   0, {0,0}    ,  7},
  73. {"Blindness"            ,0x00000002L,    TV_FOOD, ',',    /*  1*/
  74.   500,       0,    65,   1,   1,    0,   0,     0,   0, {0,0}    ,  9},
  75. {"Paranoia"            ,0x00000004L,    TV_FOOD, ',',    /*  2*/
  76.   500,       0,    66,   1,   1,    0,   0,     0,   0, {0,0}    ,  9},
  77. {"Confusion"            ,0x00000008L,    TV_FOOD, ',',    /*  3*/
  78.   500,       0,    67,   1,   1,    0,   0,     0,   0, {0,0}    ,  7},
  79. {"Hallucination"        ,0x00000010L,    TV_FOOD, ',',    /*  4*/
  80.   500,       0,    68,   1,   1,    0,   0,     0,   0, {0,0}    , 13},
  81. {"Cure Poison"            ,0x00000020L,    TV_FOOD, ',',    /*  5*/
  82.   500,      60,    69,   1,   1,    0,   0,     0,   0, {0,0}    ,  8},
  83. {"Cure Blindness"        ,0x00000040L,    TV_FOOD, ',',    /*  6*/
  84.   500,      50,    70,   1,   1,    0,   0,     0,   0, {0,0}    , 10},
  85. {"Cure Paranoia"        ,0x00000080L,    TV_FOOD, ',',    /*  7*/
  86.   500,      25,    71,   1,   1,    0,   0,     0,   0, {0,0}    , 12},
  87. {"Cure Confusion"        ,0x00000100L,    TV_FOOD, ',',    /*  8*/
  88.   500,      50,    72,   1,   1,    0,   0,     0,   0, {0,0}    ,  6},
  89. {"Weakness"            ,0x04000200L,    TV_FOOD, ',',    /*  9*/
  90.   500,       0,    73,   1,   1,    0,   0,     0,   0, {0,0}    ,  7},
  91. {"Unhealth"            ,0x04000400L,    TV_FOOD, ',',    /* 10*/
  92.   500,      50,    74,   1,   1,    0,   0,     0,   0, {10,10}, 15},
  93. {"Restore Constitution"        ,0x00010000L,    TV_FOOD, ',',    /* 11*/
  94.   500,     350,    75,   1,   1,    0,   0,     0,   0, {0,0}    , 20},
  95. {"First-Aid"            ,0x00200000L,    TV_FOOD, ',',    /* 12*/
  96.   500,       5,    76,   1,   1,    0,   0,     0,   0, {0,0}    ,  6},
  97. {"Minor Cures"            ,0x00400000L,    TV_FOOD, ',',    /* 13*/
  98.   500,      20,    77,   1,   1,    0,   0,     0,   0, {0,0}    ,  7},
  99. {"Light Cures"            ,0x00800000L,    TV_FOOD, ',',    /* 14*/
  100.   500,      30,    78,   1,   1,    0,   0,     0,   0, {0,0}    , 10},
  101. {"Restoring"            ,0x001F8040L,    TV_FOOD, ',',    /* 15*/
  102.   500,    1000,    79,   1,   1,    0,   0,     0,   0, {0,0}    , 30},
  103. {"Poison"            ,0x00000001L,    TV_FOOD, ',',    /* 16*/
  104.  1200,       0,    80,   1,   1,    0,   0,     0,   0, {0,0}    , 15},
  105. {"Hallucinations"        ,0x00000010L,    TV_FOOD, ',',    /* 17*/
  106.  1200,       0,    81,   1,   1,    0,   0,     0,   0, {0,0}    , 18},
  107. {"Cure Poison"            ,0x00000020L,    TV_FOOD, ',',    /* 18*/
  108.  1200,      75,    82,   1,   1,    0,   0,     0,   0, {0,0}    , 19},
  109. {"Unhealth"            ,0x00000400L,    TV_FOOD, ',',    /* 19*/
  110.  1200,      25,    83,   1,   1,    0,   0,     0,   0, {6,8}    , 28},
  111. {"Cure Serious Wounds"        ,0x02000000L,    TV_FOOD, ',',    /* 20*/
  112.  1200,      75,    84,   1,   2,    0,   0,     0,   0, {0,0}    , 16},
  113. {"& Ration~ of Food"        ,0x00000000L,    TV_FOOD, ',',    /* 21*/
  114.  5000,       3,    90,   1,  10,    0,   0,     0,   0, {0,0}    ,  0},
  115. {"& Ration~ of Food"        ,0x00000000L,    TV_FOOD, ',',    /* 22*/
  116.  5000,       3,    90,   1,  10,    0,   0,     0,   0, {0,0}    ,  5},
  117. {"& Ration~ of Food"        ,0x00000000L,    TV_FOOD, ',',    /* 23*/
  118.  5000,       3,    90,   1,  10,    0,   0,     0,   0, {0,0}    , 10},
  119. {"& Slime Mold~"        ,0x00000000L,    TV_FOOD, ',',    /* 24*/
  120.  3000,       2,    91,   1,   5,    0,   0,     0,   0, {0,0}    ,  1},
  121. {"& Piece~ of Elvish Waybread"    ,0x02000020L,    TV_FOOD, ',',    /* 25*/
  122.  7500,      10,    92,   1,   3,    0,   0,     0,   0, {0,0}    ,  6},
  123. {"& Piece~ of Elvish Waybread"    ,0x02000020L,    TV_FOOD, ',',    /* 26*/
  124.  7500,      10,    92,   1,   3,    0,   0,     0,   0, {0,0}    , 12},
  125. {"& Piece~ of Elvish Waybread"    ,0x02000020L,    TV_FOOD, ',',    /* 27*/
  126.  7500,      10,    92,   1,   3,    0,   0,     0,   0, {0,0}    , 20},
  127. {"& Dagger (Main Gauche)"    ,0x00000000L,    TV_SWORD, '|',    /* 28*/
  128.     0,      25,    1,   1,  30,    0,   0,     0,   0, {1,5}    ,  2},
  129. {"& Dagger (Misericorde)"    ,0x00000000L,    TV_SWORD, '|',    /* 29*/
  130.     0,      10,    2,   1,  15,    0,   0,     0,   0, {1,4}    ,  0},
  131. {"& Dagger (Stiletto)"        ,0x00000000L,    TV_SWORD, '|',    /* 30*/
  132.     0,      10,    3,   1,  12,    0,   0,     0,   0, {1,4}    ,  0},
  133. {"& Dagger (Bodkin)"        ,0x00000000L,    TV_SWORD, '|',    /* 31*/
  134.     0,      10,    4,   1,  20,    0,   0,     0,   0, {1,4}    ,  1},
  135. {"& Broken dagger"        ,0x00000000L,    TV_SWORD, '|',    /* 32*/
  136.     0,       0,    5,   1,  15,  -2,  -2,     0,   0, {1,1}    ,  0},
  137. {"& Backsword"            ,0x00000000L,    TV_SWORD, '|',    /* 33*/
  138.     0,      60,    6,   1,  95,    0,   0,     0,   0, {1,9}    ,  7},
  139. {"& Bastard Sword"        ,0x00000000L,    TV_SWORD, '|',    /* 34*/
  140.     0,     350,    7,   1, 140,    0,   0,     0,   0, {3,4}    , 14},
  141. {"& Thrusting Sword (Bilbo)"    ,0x00000000L,    TV_SWORD, '|',    /* 35*/
  142.     0,      60,    8,   1,  80,    0,   0,     0,   0, {1,6}    ,  4},
  143. {"& Thrusting Sword (Baselard)"    ,0x00000000L,    TV_SWORD, '|',    /* 36*/
  144.     0,      80,    9,   1, 100,    0,   0,     0,   0, {1,7}    ,  5},
  145. {"& Broadsword"            ,0x00000000L,    TV_SWORD, '|',    /* 37*/
  146.     0,     255,    10,   1, 150,    0,   0,     0,   0, {2,5}    ,  9},
  147. {"& Two-Handed Sword (Claymore)",0x00000000L,    TV_SWORD, '|',    /* 38*/
  148.     0,     775,    11,   1, 200,    0,   0,     0,   0, {3,6}    , 30},
  149. {"& Cutlass"            ,0x00000000L,    TV_SWORD, '|',    /* 39*/
  150.     0,      85,    12,   1, 110,    0,   0,     0,   0, {1,7}    ,  7},
  151. {"& Two-Handed Sword (Espadon)"    ,0x00000000L,    TV_SWORD, '|',    /* 40*/
  152.     0,     655,    13,   1, 180,    0,   0,     0,   0, {3,6}    , 35},
  153. {"& Executioner's Sword"    ,0x00000000L,    TV_SWORD, '|',    /* 41*/
  154.     0,     850,    14,   1, 260,    0,   0,     0,   0, {4,5}    , 40},
  155. {"& Two-Handed Sword (Flamberge)",0x00000000L,    TV_SWORD, '|',    /* 42*/
  156.     0,    1000,    15,   1, 240,    0,   0,     0,   0, {4,5}    , 45},
  157. {"& Foil"            ,0x00000000L,    TV_SWORD, '|',    /* 43*/
  158.     0,      35,    16,   1,  30,    0,   0,     0,   0, {1,5}    ,  2},
  159. {"& Katana"            ,0x00000000L,    TV_SWORD, '|',    /* 44*/
  160.     0,     400,    17,   1, 120,    0,   0,     0,   0, {3,4}    , 18},
  161. {"& Longsword"            ,0x00000000L,    TV_SWORD, '|',    /* 45*/
  162.     0,     300,    18,   1, 130,    0,   0,     0,   0, {1,10} , 12},
  163. {"& Two-Handed Sword (No-Dachi)",0x00000000L,    TV_SWORD, '|',    /* 46*/
  164.     0,     675,    19,   1, 200,    0,   0,     0,   0, {4,4}    , 45},
  165. {"& Rapier"            ,0x00000000L,    TV_SWORD, '|',    /* 47*/
  166.     0,      42,    20,   1,  40,    0,   0,     0,   0, {1,6}    ,  4},
  167. {"& Sabre"            ,0x00000000L,    TV_SWORD, '|',    /* 48*/
  168.     0,      50,    21,   1,  50,    0,   0,     0,   0, {1,7}    ,  5},
  169. {"& Small Sword"        ,0x00000000L,    TV_SWORD, '|',    /* 49*/
  170.     0,      48,    22,   1,  75,    0,   0,     0,   0, {1,6}    ,  5},
  171. {"& Two-Handed Sword (Zweihander)",0x00000000L,    TV_SWORD, '|',    /* 50*/
  172.     0,    1500,    23,   1, 280,    0,   0,     0,   0, {4,6}    , 50},
  173. {"& Broken sword"        ,0x00000000L,    TV_SWORD, '|',    /* 51*/
  174.     0,       0,    24,   1,  75,  -2,  -2,     0,   0, {1,1}    ,  0},
  175. {"& Ball and Chain"        ,0x00000000L,    TV_HAFTED, '\\',/* 52*/
  176.     0,     200,    1,   1, 150,    0,   0,     0,   0, {2,4}    , 20},
  177. {"& Cat-O-Nine Tails"        ,0x00000000L,    TV_HAFTED, '\\',/* 53*/
  178.     0,      14,    2,   1,  40,    0,   0,     0,   0, {1,4}    ,  3},
  179. {"& Wooden Club"        ,0x00000000L,    TV_HAFTED, '\\',/* 54*/
  180.     0,      10,    3,   1, 100,    0,   0,     0,   0, {1,3}    ,  0},
  181. {"& Flail"            ,0x00000000L,    TV_HAFTED, '\\',/* 55*/
  182.     0,     353,    4,   1, 150,    0,   0,     0,   0, {2,6}    , 12},
  183. {"& Two-Handed Great Flail"    ,0x00000000L,    TV_HAFTED, '\\',/* 56*/
  184.     0,     590,    5,   1, 280,    0,   0,     0,   0, {3,6}    , 45},
  185. {"& Morningstar"        ,0x00000000L,    TV_HAFTED, '\\',/* 57*/
  186.     0,     396,    6,   1, 150,    0,   0,     0,   0, {2,6}    , 10},
  187. {"& Mace"            ,0x00000000L,    TV_HAFTED, '\\',/* 58*/
  188.     0,     130,    7,   1, 120,    0,   0,     0,   0, {2,4}    ,  6},
  189. {"& War Hammer"            ,0x00000000L,    TV_HAFTED, '\\',/* 59*/
  190.     0,     225,    8,   1, 120,    0,   0,     0,   0, {3,3}    ,  5},
  191. {"& Mace (Lead-filled)"        ,0x00000000L,    TV_HAFTED, '\\',/* 60*/
  192.     0,     502,    9,   1, 180,    0,   0,     0,   0, {3,4}    , 15},
  193. {"& Awl-Pike"            ,0x00000000L,    TV_POLEARM, '/',/* 61*/
  194.     0,     340,    1,   1, 160,    0,   0,     0,   0, {1,8}    ,  8},
  195. {"& Beaked Axe"            ,0x00000000L,    TV_POLEARM, '/',/* 62*/
  196.     0,     408,    2,   1, 180,    0,   0,     0,   0, {2,6}    , 15},
  197. {"& Fauchard"            ,0x00000000L,    TV_POLEARM, '/',/* 63*/
  198.     0,     376,    3,   1, 170,    0,   0,     0,   0, {1,10} , 17},
  199. {"& Glaive"            ,0x00000000L,    TV_POLEARM, '/',/* 64*/
  200.     0,     363,    4,   1, 190,    0,   0,     0,   0, {2,6}    , 20},
  201. {"& Halberd"            ,0x00000000L,    TV_POLEARM, '/',/* 65*/
  202.     0,     430,    5,   1, 190,    0,   0,     0,   0, {3,4}    , 22},
  203. {"& Lucerne Hammer"        ,0x00000000L,    TV_POLEARM, '/',/* 66*/
  204.     0,     376,    6,   1, 120,    0,   0,     0,   0, {2,5}    , 11},
  205. {"& Pike"            ,0x00000000L,    TV_POLEARM, '/',/* 67*/
  206.     0,     358,    7,   1, 160,    0,   0,     0,   0, {2,5}    , 15},
  207. {"& Spear"            ,0x00000000L,    TV_POLEARM, '/',/* 68*/
  208.     0,      36,    8,   1,  50,    0,   0,     0,   0, {1,6}    ,  5},
  209. {"& Lance"            ,0x00000000L,    TV_POLEARM, '/',/* 69*/
  210.     0,     230,    9,   1, 300,    0,   0,     0,   0, {2,8}    , 10},
  211. {"& Javelin"            ,0x00000000L,    TV_POLEARM, '/',/* 70*/
  212.     0,      18,    10,   1,  30,    0,   0,     0,   0, {1,4}    ,  4},
  213. {"& Battle Axe (Balestarius)"    ,0x00000000L,    TV_POLEARM, '/',/* 71*/
  214.     0,     500,    11,   1, 180,    0,   0,     0,   0, {2,8}    , 30},
  215. {"& Battle Axe (European)"    ,0x00000000L,    TV_POLEARM, '/',/* 72*/
  216.     0,     334,    12,   1, 170,    0,   0,     0,   0, {3,4}    , 13},
  217. {"& Broad Axe"            ,0x00000000L,    TV_POLEARM, '/',/* 73*/
  218.     0,     304,    13,   1, 160,    0,   0,     0,   0, {2,6}    , 17},
  219. {"& Short Bow"            ,0x00000000L,    TV_BOW, '}',    /* 74*/
  220.     2,      50,    1,   1,  30,    0,   0,     0,   0, {0,0}    ,  3},
  221. {"& Long Bow"            ,0x00000000L,    TV_BOW, '}',    /* 75*/
  222.     3,     120,    2,   1,  40,    0,   0,     0,   0, {0,0}    , 10},
  223. {"& Composite Bow"        ,0x00000000L,    TV_BOW, '}',    /* 76*/
  224.     4,     240,    3,   1,  40,    0,   0,     0,   0, {0,0}    , 40},
  225. {"& Light Crossbow"        ,0x00000000L,    TV_BOW, '}',    /* 77*/
  226.     5,     140,    10,   1, 110,    0,   0,     0,   0, {0,0}    , 15},
  227. {"& Heavy Crossbow"        ,0x00000000L,    TV_BOW, '}',    /* 78*/
  228.     6,     300,    11,   1, 200,    0,   0,     0,   0, {1,1}    , 30},
  229. {"& Sling"            ,0x00000000L,    TV_BOW, '}',    /* 79*/
  230.     1,       5,    20,   1,   5,    0,   0,     0,   0, {0,0}    ,  1},
  231. {"& Arrow~"            ,0x00000000L,    TV_ARROW, '{',    /* 80*/
  232.     0,       1, 193,   1,   2,    0,   0,     0,   0, {1,4}    ,  2},
  233. {"& Bolt~"            ,0x00000000L,    TV_BOLT, '{',    /* 81*/
  234.     0,       2, 193,   1,   3,    0,   0,     0,   0, {1,5}    ,  2},
  235. {"& Rounded Pebble~"        ,0x00000000L,    TV_SLING_AMMO, '{',/* 82*/
  236.     0,       1, 193,   1,   4,    0,   0,     0,   0, {1,2}    ,  0},
  237. {"& Iron Shot~"            ,0x00000000L,    TV_SLING_AMMO, '{',/* 83*/
  238.     0,       2, 194,   1,   5,    0,   0,     0,   0, {1,3}    ,  3},
  239. {"& Iron Spike~"        ,0x00000000L,    TV_SPIKE, '~',    /* 84*/
  240.     0,       1, 193,   1,  10,    0,   0,     0,   0, {1,1}    ,  1},
  241. {"& Brass Lantern~"        ,0x00000000L,    TV_LIGHT, '~',    /* 85*/
  242.  7500,      35,    1,   1,  50,    0,   0,     0,   0, {1,1}    ,  1},
  243. {"& Wooden Torch~"        ,0x00000000L,    TV_LIGHT, '~',    /* 86*/
  244.  4000,       2, 193,   1,  30,    0,   0,     0,   0, {1,1}    ,  1},
  245. {"& Orcish Pick"        ,0x20000000L,    TV_DIGGING, '\\',/* 87*/
  246.     2,     500,    2,   1, 180,    0,   0,     0,   0, {1,3}    , 20},
  247. {"& Dwarven Pick"           ,0x20000000L,    TV_DIGGING, '\\',/* 88*/
  248.     3,    1200,    3,   1, 200,    0,   0,     0,   0, {1,4}    , 50},
  249. {"& Gnomish Shovel"        ,0x20000000L,    TV_DIGGING, '\\',/* 89*/
  250.     1,     100,    5,   1,  50,    0,   0,     0,   0, {1,2}    , 20},
  251. {"& Dwarven Shovel"        ,0x20000000L,    TV_DIGGING, '\\',/* 90*/
  252.     2,     250,    6,   1, 120,    0,   0,     0,   0, {1,3}    , 40},
  253. {"& Pair of Soft Leather Shoes"    ,0x00000000L,    TV_BOOTS, ']',    /* 91*/
  254.     0,       4,    1,   1,   5,    0,   0,     1,   0, {0,0}    ,  1},
  255. {"& Pair of Soft Leather Boots"    ,0x00000000L,    TV_BOOTS, ']',    /* 92*/
  256.     0,       7,    2,   1,  20,    0,   0,     2,   0, {1,1}    ,  4},
  257. {"& Pair of Hard Leather Boots"    ,0x00000000L,    TV_BOOTS, ']',    /* 93*/
  258.     0,      12,    3,   1,  40,    0,   0,     3,   0, {1,1}    ,  6},
  259. {"& Soft Leather Cap"        ,0x00000000L,    TV_HELM, ']',    /* 94*/
  260.     0,       4,    1,   1,  10,    0,   0,     1,   0, {0,0}    ,  2},
  261. {"& Hard Leather Cap"        ,0x00000000L,    TV_HELM, ']',    /* 95*/
  262.     0,      12,    2,   1,  15,    0,   0,     2,   0, {0,0}    ,  4},
  263. {"& Metal Cap"            ,0x00000000L,    TV_HELM, ']',    /* 96*/
  264.     0,      30,    3,   1,  20,    0,   0,     3,   0, {1,1}    ,  7},
  265. {"& Iron Helm"            ,0x00000000L,    TV_HELM, ']',    /* 97*/
  266.     0,      75,    4,   1,  75,    0,   0,     5,   0, {1,3}    , 20},
  267. {"& Steel Helm"            ,0x00000000L,    TV_HELM, ']',    /* 98*/
  268.     0,     200,    5,   1,  60,    0,   0,     6,   0, {1,3}    , 40},
  269. {"& Silver Crown"        ,0x00000000L,    TV_HELM, ']',    /* 99*/
  270.     0,     500,    6,   1,  20,    0,   0,     0,   0, {1,1}    , 44},
  271. {"& Golden Crown"        ,0x00000000L,    TV_HELM, ']',    /*100*/
  272.     0,    1000,    7,   1,  30,    0,   0,     0,   0, {1,1}    , 47},
  273. {"& Jewel-Encrusted Crown"    ,0x00000000L,    TV_HELM, ']',    /*101*/
  274.     0,    2000,    8,   1,  40,    0,   0,     0,   0, {1,1}    , 50},
  275. {"& Robe"            ,0x00000000L,    TV_SOFT_ARMOR, '(',/*102*/
  276.     0,       4,    1,   1,  20,    0,   0,     2,   0, {0,0}    ,  1},
  277. {"Soft Leather Armor"        ,0x00000000L,    TV_SOFT_ARMOR, '(',/*103*/
  278.     0,      18,    2,   1,  80,    0,   0,     4,   0, {0,0}    ,  2},
  279. {"Soft Studded Leather"        ,0x00000000L,    TV_SOFT_ARMOR, '(',/*104*/
  280.     0,      35,    3,   1,  90,    0,   0,     5,   0, {1,1}    ,  3},
  281. {"Hard Leather Armor"        ,0x00000000L,    TV_SOFT_ARMOR, '(',/*105*/
  282.     0,      55,    4,   1, 100,  -1,   0,     6,   0, {1,1}    ,  5},
  283. {"Hard Studded Leather"        ,0x00000000L,    TV_SOFT_ARMOR, '(',/*106*/
  284.     0,     100,    5,   1, 110,  -1,   0,     7,   0, {1,2}    ,  7},
  285. {"Woven Cord Armor"        ,0x00000000L,    TV_SOFT_ARMOR, '(',/*107*/
  286.     0,      45,    6,   1, 150,  -1,   0,     6,   0, {0,0}    ,  7},
  287. {"Soft Leather Ring Mail"    ,0x00000000L,    TV_SOFT_ARMOR, '(',/*108*/
  288.     0,     160,    7,   1, 130,  -1,   0,     6,   0, {1,2}    , 10},
  289. {"Hard Leather Ring Mail"    ,0x00000000L,    TV_SOFT_ARMOR, '(',/*109*/
  290.     0,     230,    8,   1, 150,  -2,   0,     8,   0, {1,3}    , 12},
  291. {"Leather Scale Mail"        ,0x00000000L,    TV_SOFT_ARMOR, '(',/*110*/
  292.     0,     330,    9,   1, 140,  -1,   0,    11,   0, {1,1}    , 14},
  293. {"Metal Scale Mail"        ,0x00000000L,    TV_HARD_ARMOR, '[',/*111*/
  294.     0,     430,    1,   1, 250,  -2,   0,    13,   0, {1,4}    , 24},
  295. {"Chain Mail"            ,0x00000000L,    TV_HARD_ARMOR, '[',/*112*/
  296.     0,     530,    2,   1, 220,  -2,   0,    14,   0, {1,4}    , 26},
  297. {"Rusty Chain Mail"        ,0x00000000L,    TV_HARD_ARMOR, '[',/*113*/
  298.     0,       0,    3,   1, 200,  -5,   0,    14,  -8, {1,4}    , 26},
  299. {"Double Chain Mail"        ,0x00000000L,    TV_HARD_ARMOR, '[',/*114*/
  300.     0,     630,    4,   1, 260,  -2,   0,    15,   0, {1,4}    , 28},
  301. {"Augmented Chain Mail"        ,0x00000000L,    TV_HARD_ARMOR, '[',/*115*/
  302.     0,     675,    5,   1, 270,  -2,   0,    16,   0, {1,4}    , 30},
  303. {"Bar Chain Mail"        ,0x00000000L,    TV_HARD_ARMOR, '[',/*116*/
  304.     0,     720,    6,   1, 280,  -2,   0,    18,   0, {1,4}    , 34},
  305. {"Metal Brigandine Armor"    ,0x00000000L,    TV_HARD_ARMOR, '[',/*117*/
  306.     0,     775,    7,   1, 290,  -3,   0,    19,   0, {1,4}    , 36},
  307. {"Laminated Armor"        ,0x00000000L,    TV_HARD_ARMOR, '[',/*118*/
  308.     0,     825,    8,   1, 300,  -3,   0,    20,   0, {1,4}    , 38},
  309. {"Partial Plate Armor"        ,0x00000000L,    TV_HARD_ARMOR, '[',/*119*/
  310.     0,     900,    9,   1, 260,  -3,   0,    22,   0, {1,6}    , 42},
  311. {"Metal Lamellar Armor"        ,0x00000000L,    TV_HARD_ARMOR, '[',/*120*/
  312.     0,     950,    10,   1, 340,  -3,   0,    23,   0, {1,6}    , 44},
  313. {"Full Plate Armor"        ,0x00000000L,    TV_HARD_ARMOR, '[',/*121*/
  314.     0,    1050,    11,   1, 380,  -3,   0,    25,   0, {2,4}    , 48},
  315. {"Ribbed Plate Armor"        ,0x00000000L,    TV_HARD_ARMOR, '[',/*122*/
  316.     0,    1200,    12,   1, 380,  -3,   0,    28,   0, {2,4}    , 50},
  317. {"& Cloak"            ,0x00000000L,    TV_CLOAK, '(',    /*123*/
  318.     0,       3,    1,   1,  10,    0,   0,     1,   0, {0,0}    ,  1},
  319. {"& Set of Leather Gloves"    ,0x00000000L,    TV_GLOVES, ']',    /*124*/
  320.     0,       3,    1,   1,   5,    0,   0,     1,   0, {0,0}    ,  1},
  321. {"& Set of Gauntlets"        ,0x00000000L,    TV_GLOVES, ']',    /*125*/
  322.     0,      35,    2,   1,  25,    0,   0,     2,   0, {1,1}    , 12},
  323. {"& Small Leather Shield"    ,0x00000000L,    TV_SHIELD, ')',    /*126*/
  324.     0,      30,    1,   1,  50,    0,   0,     2,   0, {1,1}    ,  3},
  325. {"& Medium Leather Shield"    ,0x00000000L,    TV_SHIELD, ')',    /*127*/
  326.     0,      60,    2,   1,  75,    0,   0,     3,   0, {1,2}    ,  8},
  327. {"& Large Leather Shield"    ,0x00000000L,    TV_SHIELD, ')',    /*128*/
  328.     0,     120,    3,   1, 100,    0,   0,     4,   0, {1,2}    , 15},
  329. {"& Small Metal Shield"        ,0x00000000L,    TV_SHIELD, ')',    /*129*/
  330.     0,      50,    4,   1,  65,    0,   0,     3,   0, {1,2}    , 10},
  331. {"& Medium Metal Shield"    ,0x00000000L,    TV_SHIELD, ')',    /*130*/
  332.     0,     125,    5,   1,  90,    0,   0,     4,   0, {1,3}    , 20},
  333. {"& Large Metal Shield"        ,0x00000000L,    TV_SHIELD, ')',    /*131*/
  334.     0,     200,    6,   1, 120,    0,   0,     5,   0, {1,3}    , 30},
  335. {"Gain Strength"        ,0x00000001L,    TV_RING, '=',    /*132*/
  336.     0,     400,    0,   1,   2,    0,   0,     0,   0, {0,0}    , 30},
  337. {"Gain Dexterity"        ,0x00000008L,    TV_RING, '=',    /*133*/
  338.     0,     400,    1,   1,   2,    0,   0,     0,   0, {0,0}    , 30},
  339. {"Gain Constitution"        ,0x00000010L,    TV_RING, '=',    /*134*/
  340.     0,     400,    2,   1,   2,    0,   0,     0,   0, {0,0}    , 30},
  341. {"Gain Intelligence"        ,0x00000002L,    TV_RING, '=',    /*135*/
  342.     0,     350,    3,   1,   2,    0,   0,     0,   0, {0,0}    , 30},
  343. {"Speed"            ,0x00001000L,    TV_RING, '=',    /*136*/
  344.     0,    3000,    4,   1,   2,    0,   0,     0,   0, {0,0}    , 50},
  345. {"Searching"            ,0x00000040L,    TV_RING, '=',    /*137*/
  346.     0,     250,    5,   1,   2,    0,   0,     0,   0, {0,0}    ,  7},
  347. {"Teleportation"        ,0x80000400L,    TV_RING, '=',    /*138*/
  348.     0,       0,    6,   1,   2,    0,   0,     0,   0, {0,0}    ,  7},
  349. {"Slow Digestion"        ,0x00000080L,    TV_RING, '=',    /*139*/
  350.     0,     250,    7,   1,   2,    0,   0,     0,   0, {0,0}    ,  7},
  351. {"Resist Fire"            ,0x00080000L,    TV_RING, '=',    /*140*/
  352.     0,     250,    8,   1,   2,    0,   0,     0,   0, {0,0}    , 14},
  353. {"Resist Cold"            ,0x00200000L,    TV_RING, '=',    /*141*/
  354.     0,     250,    9,   1,   2,    0,   0,     0,   0, {0,0}    , 14},
  355. {"Feather Falling"        ,0x04000000L,    TV_RING, '=',    /*142*/
  356.     0,     200,    10,   1,   2,    0,   0,     0,   0, {0,0}    ,  7},
  357. {"Adornment"            ,0x00000000L,    TV_RING, '=',    /*143*/
  358.     0,      20,    11,   1,   2,    0,   0,     0,   0, {0,0}    ,  7},
  359. /* was a ring of adornment, subval = 12 here */
  360. {"& Arrow~"            ,0x00000000L,    TV_ARROW, '{',    /*144*/
  361.     0,       1, 193,   1,   2,    0,   0,     0,   0, {1,4}    , 15},
  362. {"Weakness"            ,0x80000001L,    TV_RING, '=',    /*145*/
  363.    -5,       0,    13,   1,   2,    0,   0,     0,   0, {0,0}    ,  7},
  364. {"Lordly Protection (FIRE)"    ,0x00080000L,    TV_RING, '=',    /*146*/
  365.     0,    1200,    14,   1,   2,    0,   0,     0,   5, {0,0}    , 50},
  366. {"Lordly Protection (ACID)"    ,0x00100000L,    TV_RING, '=',    /*147*/
  367.     0,    1200,    15,   1,   2,    0,   0,     0,   5, {0,0}    , 50},
  368. {"Lordly Protection (COLD)"    ,0x00200000L,    TV_RING, '=',    /*148*/
  369.     0,    1200,    16,   1,   2,    0,   0,     0,   5, {0,0}    , 50},
  370. {"WOE"                ,0x80000644L,    TV_RING, '=',    /*149*/
  371.    -5,       0,    17,   1,   2,    0,   0,     0,  -3, {0,0}    , 50},
  372. {"Stupidity"            ,0x80000002L,    TV_RING, '=',    /*150*/
  373.    -5,       0,    18,   1,   2,    0,   0,     0,   0, {0,0}    ,  7},
  374. {"Increase Damage"        ,0x00000000L,    TV_RING, '=',    /*151*/
  375.     0,     100,    19,   1,   2,    0,   0,     0,   0, {0,0}    , 20},
  376. {"Increase To-Hit"        ,0x00000000L,    TV_RING, '=',    /*152*/
  377.     0,     100,    20,   1,   2,    0,   0,     0,   0, {0,0}    , 20},
  378. {"Protection"            ,0x00000000L,    TV_RING, '=',    /*153*/
  379.     0,     100,    21,   1,   2,    0,   0,     0,   0, {0,0}    ,  7},
  380. {"Aggravate Monster"        ,0x80000200L,    TV_RING, '=',    /*154*/
  381.     0,       0,    22,   1,   2,    0,   0,     0,   0, {0,0}    ,  7},
  382. {"See Invisible"        ,0x01000000L,    TV_RING, '=',    /*155*/
  383.     0,     340,    23,   1,   2,    0,   0,     0,   0, {0,0}    , 40},
  384. {"Sustain Strength"        ,0x00400000L,    TV_RING, '=',    /*156*/
  385.     1,     750,    24,   1,   2,    0,   0,     0,   0, {0,0}    , 44},
  386. {"Sustain Intelligence"        ,0x00400000L,    TV_RING, '=',    /*157*/
  387.     2,     600,    25,   1,   2,    0,   0,     0,   0, {0,0}    , 44},
  388. {"Sustain Wisdom"        ,0x00400000L,    TV_RING, '=',    /*158*/
  389.     3,     600,    26,   1,   2,    0,   0,     0,   0, {0,0}    , 44},
  390. {"Sustain Constitution"        ,0x00400000L,    TV_RING, '=',    /*159*/
  391.     4,     750,    27,   1,   2,    0,   0,     0,   0, {0,0}    , 44},
  392. {"Sustain Dexterity"        ,0x00400000L,    TV_RING, '=',    /*160*/
  393.     5,     750,    28,   1,   2,    0,   0,     0,   0, {0,0}    , 44},
  394. {"Sustain Charisma"        ,0x00400000L,    TV_RING, '=',    /*161*/
  395.     6,     500,    29,   1,   2,    0,   0,     0,   0, {0,0}    , 44},
  396. {"Slaying"            ,0x00000000L,    TV_RING, '=',    /*162*/
  397.     0,    1000,    30,   1,   2,    0,   0,     0,   0, {0,0}    , 50},
  398. {"Wisdom"            ,0x00000004L,    TV_AMULET, '"',    /*163*/
  399.     0,     300,    0,   1,   3,    0,   0,     0,   0, {0,0}    , 20},
  400. {"Charisma"            ,0x00000020L,    TV_AMULET, '"',    /*164*/
  401.     0,     250,    1,   1,   3,    0,   0,     0,   0, {0,0}    , 20},
  402. {"Searching"            ,0x00000040L,    TV_AMULET, '"',    /*165*/
  403.     0,     250,    2,   1,   3,    0,   0,     0,   0, {0,0}    , 14},
  404. {"Teleportation"        ,0x80000400L,    TV_AMULET, '"',    /*166*/
  405.     0,       0,    3,   1,   3,    0,   0,     0,   0, {0,0}    , 14},
  406. {"Slow Digestion"        ,0x00000080L,    TV_AMULET, '"',    /*167*/
  407.     0,     200,    4,   1,   3,    0,   0,     0,   0, {0,0}    , 14},
  408. {"Resist Acid"            ,0x00100000L,    TV_AMULET, '"',    /*168*/
  409.     0,     300,    5,   1,   3,    0,   0,     0,   0, {0,0}    , 24},
  410. {"Adornment"            ,0x00000000L,    TV_AMULET, '"',    /*169*/
  411.     0,      20,    6,   1,   3,    0,   0,     0,   0, {0,0}    , 16},
  412. /* was an amulet of adornment here, subval = 7 */
  413. {"& Bolt~"            ,0x00000000L,    TV_BOLT, '{',    /*170*/
  414.     0,       2, 193,   1,   3,    0,   0,     0,   0, {1,5}    , 25},
  415. {"the Magi"            ,0x01800040L,    TV_AMULET, '"',    /*171*/
  416.     0,    5000,    8,   1,   3,    0,   0,     0,   3, {0,0}    , 50},
  417. {"DOOM"                ,0x8000007FL,    TV_AMULET, '"',    /*172*/
  418.    -5,       0,    9,   1,   3,    0,   0,     0,   0, {0,0}    , 50},
  419. {"Enchant Weapon To-Hit"    ,0x00000001L,    TV_SCROLL1, '?',/*173*/
  420.     0,     125,    64,   1,   5,    0,   0,     0,   0, {0,0}    , 12},
  421. {"Enchant Weapon To-Dam"    ,0x00000002L,    TV_SCROLL1, '?',/*174*/
  422.     0,     125,    65,   1,   5,    0,   0,     0,   0, {0,0}    , 12},
  423. {"Enchant Armor"        ,0x00000004L,    TV_SCROLL1, '?',/*175*/
  424.     0,     125,    66,   1,   5,    0,   0,     0,   0, {0,0}    , 12},
  425. {"Identify"            ,0x00000008L,    TV_SCROLL1, '?',/*176*/
  426.     0,      50,    67,   1,   5,    0,   0,     0,   0, {0,0}    ,  1},
  427. {"Identify"            ,0x00000008L,    TV_SCROLL1, '?',/*177*/
  428.     0,      50,    67,   1,   5,    0,   0,     0,   0, {0,0}    ,  5},
  429. {"Identify"            ,0x00000008L,    TV_SCROLL1, '?',/*178*/
  430.     0,      50,    67,   1,   5,    0,   0,     0,   0, {0,0}    , 10},
  431. {"Identify"            ,0x00000008L,    TV_SCROLL1, '?',/*179*/
  432.     0,      50,    67,   1,   5,    0,   0,     0,   0, {0,0}    , 30},
  433. {"Remove Curse"            ,0x00000010L,    TV_SCROLL1, '?',/*180*/
  434.     0,     100,    68,   1,   5,    0,   0,     0,   0, {0,0}    ,  7},
  435. {"Light"            ,0x00000020L,    TV_SCROLL1, '?',/*181*/
  436.     0,      15,    69,   1,   5,    0,   0,     0,   0, {0,0}    ,  0},
  437. {"Light"            ,0x00000020L,    TV_SCROLL1, '?',/*182*/
  438.     0,      15,    69,   1,   5,    0,   0,     0,   0, {0,0}    ,  3},
  439. {"Light"            ,0x00000020L,    TV_SCROLL1, '?',/*183*/
  440.     0,      15,    69,   1,   5,    0,   0,     0,   0, {0,0}    ,  7},
  441. {"Summon Monster"        ,0x00000040L,    TV_SCROLL1, '?',/*184*/
  442.     0,       0,    70,   1,   5,    0,   0,     0,   0, {0,0}    ,  1},
  443. {"Phase Door"            ,0x00000080L,    TV_SCROLL1, '?',/*185*/
  444.     0,      15,    71,   1,   5,    0,   0,     0,   0, {0,0}    ,  1},
  445. {"Teleport"            ,0x00000100L,    TV_SCROLL1, '?',/*186*/
  446.     0,      40,    72,   1,   5,    0,   0,     0,   0, {0,0}    , 10},
  447. {"Teleport Level"        ,0x00000200L,    TV_SCROLL1, '?',/*187*/
  448.     0,      50,    73,   1,   5,    0,   0,     0,   0, {0,0}    , 20},
  449. {"Monster Confusion"        ,0x00000400L,    TV_SCROLL1, '?',/*188*/
  450.     0,      30,    74,   1,   5,    0,   0,     0,   0, {0,0}    ,  5},
  451. {"Magic Mapping"        ,0x00000800L,    TV_SCROLL1, '?',/*189*/
  452.     0,      40,    75,   1,   5,    0,   0,     0,   0, {0,0}    ,  5},
  453. {"Sleep Monster"        ,0x00001000L,    TV_SCROLL1, '?',/*190*/
  454.     0,      35,    76,   1,   5,    0,   0,     0,   0, {0,0}    ,  5},
  455. {"Rune of Protection"        ,0x00002000L,    TV_SCROLL1, '?',/*191*/
  456.     0,     500,    77,   1,   5,    0,   0,     0,   0, {0,0}    , 50},
  457. {"Treasure Detection"        ,0x00004000L,    TV_SCROLL1, '?',/*192*/
  458.     0,      15,    78,   1,   5,    0,   0,     0,   0, {0,0}    ,  0},
  459. {"Object Detection"        ,0x00008000L,    TV_SCROLL1, '?',/*193*/
  460.     0,      15,    79,   1,   5,    0,   0,     0,   0, {0,0}    ,  0},
  461. {"Trap Detection"        ,0x00010000L,    TV_SCROLL1, '?',/*194*/
  462.     0,      35,    80,   1,   5,    0,   0,     0,   0, {0,0}    ,  5},
  463. {"Trap Detection"        ,0x00010000L,    TV_SCROLL1, '?',/*195*/
  464.     0,      35,    80,   1,   5,    0,   0,     0,   0, {0,0}    ,  8},
  465. {"Trap Detection"        ,0x00010000L,    TV_SCROLL1, '?',/*196*/
  466.     0,      35,    80,   1,   5,    0,   0,     0,   0, {0,0}    , 12},
  467. {"Door/Stair Location"        ,0x00020000L,    TV_SCROLL1, '?',/*197*/
  468.     0,      35,    81,   1,   5,    0,   0,     0,   0, {0,0}    ,  5},
  469. {"Door/Stair Location"        ,0x00020000L,    TV_SCROLL1, '?',/*198*/
  470.     0,      35,    81,   1,   5,    0,   0,     0,   0, {0,0}    , 10},
  471. {"Door/Stair Location"        ,0x00020000L,    TV_SCROLL1, '?',/*199*/
  472.     0,      35,    81,   1,   5,    0,   0,     0,   0, {0,0}    , 15},
  473. {"Mass Genocide"        ,0x00040000L,    TV_SCROLL1, '?',/*200*/
  474.     0,    1000,    82,   1,   5,    0,   0,     0,   0, {0,0}    , 50},
  475. {"Detect Invisible"        ,0x00080000L,    TV_SCROLL1, '?',/*201*/
  476.     0,      15,    83,   1,   5,    0,   0,     0,   0, {0,0}    ,  1},
  477. {"Aggravate Monster"        ,0x00100000L,    TV_SCROLL1, '?',/*202*/
  478.     0,       0,    84,   1,   5,    0,   0,     0,   0, {0,0}    ,  5},
  479. {"Trap Creation"        ,0x00200000L,    TV_SCROLL1, '?',/*203*/
  480.     0,       0,    85,   1,   5,    0,   0,     0,   0, {0,0}    , 12},
  481. {"Trap/Door Destruction"    ,0x00400000L,    TV_SCROLL1, '?',/*204*/
  482.     0,      50,    86,   1,   5,    0,   0,     0,   0, {0,0}    , 12},
  483. {"Door Creation"        ,0x00800000L,    TV_SCROLL1, '?',/*205*/
  484.     0,     100,    87,   1,   5,    0,   0,     0,   0, {0,0}    , 12},
  485. {"Recharging"            ,0x01000000L,    TV_SCROLL1, '?',/*206*/
  486.     0,     200,    88,   1,   5,    0,   0,     0,   0, {0,0}    , 40},
  487. {"Genocide"            ,0x02000000L,    TV_SCROLL1, '?',/*207*/
  488.     0,     750,    89,   1,   5,    0,   0,     0,   0, {0,0}    , 35},
  489. {"Darkness"            ,0x04000000L,    TV_SCROLL1, '?',/*208*/
  490.     0,       0,    90,   1,   5,    0,   0,     0,   0, {0,0}    ,  1},
  491. {"Protection from Evil"        ,0x08000000L,    TV_SCROLL1, '?',/*209*/
  492.     0,      50,    91,   1,   5,    0,   0,     0,   0, {0,0}    , 30},
  493. {"Create Food"            ,0x10000000L,    TV_SCROLL1, '?',/*210*/
  494.     0,      10,    92,   1,   5,    0,   0,     0,   0, {0,0}    ,  5},
  495. {"Dispel Undead"        ,0x20000000L,    TV_SCROLL1, '?',/*211*/
  496.     0,     200,    93,   1,   5,    0,   0,     0,   0, {0,0}    , 40},
  497. {"*Enchant Weapon*"        ,0x00000001L,    TV_SCROLL2, '?',/*212*/
  498.     0,     500,    94,   1,   5,    0,   0,     0,   0, {0,0}    , 50},
  499. {"Curse Weapon"            ,0x00000002L,    TV_SCROLL2, '?',/*213*/
  500.     0,       0,    95,   1,   5,    0,   0,     0,   0, {0,0}    , 50},
  501. {"*Enchant Armor*"        ,0x00000004L,    TV_SCROLL2, '?',/*214*/
  502.     0,     500,    96,   1,   5,    0,   0,     0,   0, {0,0}    , 50},
  503. {"Curse Armor"            ,0x00000008L,    TV_SCROLL2, '?',/*215*/
  504.     0,       0,    97,   1,   5,    0,   0,     0,   0, {0,0}    , 50},
  505. {"Summon Undead"        ,0x00000010L,    TV_SCROLL2, '?',/*216*/
  506.     0,       0,    98,   1,   5,    0,   0,     0,   0, {0,0}    , 15},
  507. {"Blessing"            ,0x00000020L,    TV_SCROLL2, '?',/*217*/
  508.     0,      15,    99,   1,   5,    0,   0,     0,   0, {0,0}    ,  1},
  509. {"Holy Chant"            ,0x00000040L,    TV_SCROLL2, '?',/*218*/
  510.     0,      40, 100,   1,   5,    0,   0,     0,   0, {0,0}    , 12},
  511. {"Holy Prayer"            ,0x00000080L,    TV_SCROLL2, '?',/*219*/
  512.     0,      80, 101,   1,   5,    0,   0,     0,   0, {0,0}    , 24},
  513. {"Word-of-Recall"        ,0x00000100L,    TV_SCROLL2, '?',/*220*/
  514.     0,     150, 102,   1,   5,    0,   0,     0,   0, {0,0}    ,  5},
  515. {"*Destruction*"        ,0x00000200L,    TV_SCROLL2, '?',/*221*/
  516.     0,     250, 103,   1,   5,    0,   0,     0,   0, {0,0}    , 40},
  517. /* SMJ, AJ, Water must be subval 64-66 resp. for objdes to work */
  518. {"Slime Mold Juice"        ,0x30000000L,    TV_POTION1, '!',/*222*/
  519.   400,       2,    64,   1,   4,    0,   0,     0,   0, {1,1}    ,  0},
  520. {"Apple Juice"            ,0x00000000L,    TV_POTION1, '!',/*223*/
  521.   250,       1,    65,   1,   4,    0,   0,     0,   0, {1,1}    ,  0},
  522. {"Water"            ,0x00000000L,    TV_POTION1, '!',/*224*/
  523.   200,       0,    66,   1,   4,    0,   0,     0,   0, {1,1}    ,  0},
  524. {"Gain Strength"        ,0x00000001L,    TV_POTION1, '!',/*225*/
  525.     0,     300,    67,   1,   4,    0,   0,     0,   0, {1,1}    , 25},
  526. {"Weakness"            ,0x00000002L,    TV_POTION1, '!',/*226*/
  527.     0,       0,    68,   1,   4,    0,   0,     0,   0, {1,1}    ,  3},
  528. {"Restore Strength"        ,0x00000004L,    TV_POTION1, '!',/*227*/
  529.     0,     300,    69,   1,   4,    0,   0,     0,   0, {1,1}    , 40},
  530. {"Gain Intelligence"        ,0x00000008L,    TV_POTION1, '!',/*228*/
  531.     0,     300,    70,   1,   4,    0,   0,     0,   0, {1,1}    , 25},
  532. {"Lose Intelligence"        ,0x00000010L,    TV_POTION1, '!',/*229*/
  533.     0,       0,    71,   1,   4,    0,   0,     0,   0, {1,1}    , 25},
  534. {"Restore Intelligence"        ,0x00000020L,    TV_POTION1, '!',/*230*/
  535.     0,     300,    72,   1,   4,    0,   0,     0,   0, {1,1}    , 40},
  536. {"Gain Wisdom"            ,0x00000040L,    TV_POTION1, '!',/*231*/
  537.     0,     300,    73,   1,   4,    0,   0,     0,   0, {1,1}    , 25},
  538. {"Lose Wisdom"            ,0x00000080L,    TV_POTION1, '!',/*232*/
  539.     0,       0,    74,   1,   4,    0,   0,     0,   0, {1,1}    , 25},
  540. {"Restore Wisdom"        ,0x00000100L,    TV_POTION1, '!',/*233*/
  541.     0,     300,    75,   1,   4,    0,   0,     0,   0, {1,1}    , 40},
  542. {"Charisma"            ,0x00000200L,    TV_POTION1, '!',/*234*/
  543.     0,     300,    76,   1,   4,    0,   0,     0,   0, {1,1}    , 25},
  544. {"Ugliness"            ,0x00000400L,    TV_POTION1, '!',/*235*/
  545.     0,       0,    77,   1,   4,    0,   0,     0,   0, {1,1}    , 25},
  546. {"Restore Charisma"        ,0x00000800L,    TV_POTION1, '!',/*236*/
  547.     0,     300,    78,   1,   4,    0,   0,     0,   0, {1,1}    , 40},
  548. {"Cure Light Wounds"        ,0x10001000L,    TV_POTION1, '!',/*237*/
  549.    50,      15,    79,   1,   4,    0,   0,     0,   0, {1,1}    ,  0},
  550. {"Cure Light Wounds"        ,0x10001000L,    TV_POTION1, '!',/*238*/
  551.    50,      15,    79,   1,   4,    0,   0,     0,   0, {1,1}    ,  1},
  552. {"Cure Light Wounds"        ,0x10001000L,    TV_POTION1, '!',/*239*/
  553.    50,      15,    79,   1,   4,    0,   0,     0,   0, {1,1}    ,  2},
  554. {"Cure Serious Wounds"        ,0x30002000L,    TV_POTION1, '!',/*240*/
  555.   100,      40,    80,   1,   4,    0,   0,     0,   0, {1,1}    ,  3},
  556. {"Cure Critical Wounds"        ,0x70004000L,    TV_POTION1, '!',/*241*/
  557.   100,     100,    81,   1,   4,    0,   0,     0,   0, {1,1}    ,  5},
  558. {"Healing"            ,0x70008000L,    TV_POTION1, '!',/*242*/
  559.   200,     200,    82,   1,   4,    0,   0,     0,   0, {1,1}    , 12},
  560. {"Gain Constitution"        ,0x00010000L,    TV_POTION1, '!',/*243*/
  561.     0,     300,    83,   1,   4,    0,   0,     0,   0, {1,1}    , 25},
  562. {"Gain Experience"        ,0x00020000L,    TV_POTION1, '!',/*244*/
  563.     0,    2500,    84,   1,   4,    0,   0,     0,   0, {1,1}    , 50},
  564. {"Sleep"            ,0x00040000L,    TV_POTION1, '!',/*245*/
  565.   100,       0,    85,   1,   4,    0,   0,     0,   0, {1,1}    ,  0},
  566. {"Blindness"            ,0x00080000L,    TV_POTION1, '!',/*246*/
  567.     0,       0,    86,   1,   4,    0,   0,     0,   0, {1,1}    ,  0},
  568. {"Confusion"            ,0x00100000L,    TV_POTION1, '!',/*247*/
  569.    50,       0,    87,   1,   4,    0,   0,     0,   0, {1,1}    ,  0},
  570. {"Poison"            ,0x00200000L,    TV_POTION1, '!',/*248*/
  571.     0,       0,    88,   1,   4,    0,   0,     0,   0, {1,1}    ,  3},
  572. {"Haste Self"            ,0x00400000L,    TV_POTION1, '!',/*249*/
  573.     0,      75,    89,   1,   4,    0,   0,     0,   0, {1,1}    ,  1},
  574. {"Slowness"            ,0x00800000L,    TV_POTION1, '!',/*250*/
  575.    50,       0,    90,   1,   4,    0,   0,     0,   0, {1,1}    ,  1},
  576. {"Gain Dexterity"        ,0x02000000L,    TV_POTION1, '!',/*251*/
  577.     0,     300,    91,   1,   4,    0,   0,     0,   0, {1,1}    , 25},
  578. {"Restore Dexterity"        ,0x04000000L,    TV_POTION1, '!',/*252*/
  579.     0,     300,    92,   1,   4,    0,   0,     0,   0, {1,1}    , 40},
  580. {"Restore Constitution"        ,0x68000000L,    TV_POTION1, '!',/*253*/
  581.     0,     300,    93,   1,   4,    0,   0,     0,   0, {1,1}    , 40},
  582. {"Lose Experience"        ,0x00000002L,    TV_POTION2, '!',/*254*/
  583.     0,       0,    95,   1,   4,    0,   0,     0,   0, {1,1}    , 10},
  584. {"Salt Water"            ,0x00000004L,    TV_POTION2, '!',/*255*/
  585.     0,       0,    96,   1,   4,    0,   0,     0,   0, {1,1}    ,  0},
  586. {"Invulnerability"        ,0x00000008L,    TV_POTION2, '!',/*256*/
  587.     0,     250,    97,   1,   4,    0,   0,     0,   0, {1,1}    , 40},
  588. {"Heroism"            ,0x00000010L,    TV_POTION2, '!',/*257*/
  589.     0,      35,    98,   1,   4,    0,   0,     0,   0, {1,1}    ,  1},
  590. {"Super Heroism"        ,0x00000020L,    TV_POTION2, '!',/*258*/
  591.     0,     100,    99,   1,   4,    0,   0,     0,   0, {1,1}    ,  3},
  592. {"Boldness"            ,0x00000040L,    TV_POTION2, '!',/*259*/
  593.     0,      10, 100,   1,   4,    0,   0,     0,   0, {1,1}    ,  1},
  594. {"Restore Life Levels"        ,0x00000080L,    TV_POTION2, '!',/*260*/
  595.     0,     400, 101,   1,   4,    0,   0,     0,   0, {1,1}    , 40},
  596. {"Resist Heat"            ,0x00000100L,    TV_POTION2, '!',/*261*/
  597.     0,      30, 102,   1,   4,    0,   0,     0,   0, {1,1}    ,  1},
  598. {"Resist Cold"            ,0x00000200L,    TV_POTION2, '!',/*262*/
  599.     0,      30, 103,   1,   4,    0,   0,     0,   0, {1,1}    ,  1},
  600. {"Detect Invisible"        ,0x00000400L,    TV_POTION2, '!',/*263*/
  601.     0,      50, 104,   1,   4,    0,   0,     0,   0, {1,1}    ,  3},
  602. {"Slow Poison"            ,0x00000800L,    TV_POTION2, '!',/*264*/
  603.     0,      25, 105,   1,   4,    0,   0,     0,   0, {1,1}    ,  1},
  604. {"Neutralize Poison"        ,0x00001000L,    TV_POTION2, '!',/*265*/
  605.     0,      75, 106,   1,   4,    0,   0,     0,   0, {1,1}    ,  5},
  606. {"Restore Mana"            ,0x00002000L,    TV_POTION2, '!',/*266*/
  607.     0,     350, 107,   1,   4,    0,   0,     0,   0, {1,1}    , 25},
  608. {"Infra-Vision"            ,0x00004000L,    TV_POTION2, '!',/*267*/
  609.     0,      20, 108,   1,   4,    0,   0,     0,   0, {1,1}    ,  3},
  610. {"& Flask~ of oil"        ,0x00040000L,    TV_FLASK, '!',    /*268*/
  611.  7500,       3,    64,   1,  10,    0,   0,     0,   0, {2,6}    ,  1},
  612. {"Light"            ,0x00000001L,    TV_WAND, '-',    /*269*/
  613.     0,     200,    0,   1,  10,    0,   0,     0,   0, {1,1}    ,  2},
  614. {"Lightning Bolts"        ,0x00000002L,    TV_WAND, '-',    /*270*/
  615.     0,     600,    1,   1,  10,    0,   0,     0,   0, {1,1}    , 15},
  616. {"Frost Bolts"            ,0x00000004L,    TV_WAND, '-',    /*271*/
  617.     0,     800,    2,   1,  10,    0,   0,     0,   0, {1,1}    , 20},
  618. {"Fire Bolts"            ,0x00000008L,    TV_WAND, '-',    /*272*/
  619.     0,    1000,    3,   1,  10,    0,   0,     0,   0, {1,1}    , 30},
  620. {"Stone-to-Mud"            ,0x00000010L,    TV_WAND, '-',    /*273*/
  621.     0,     300,    4,   1,  10,    0,   0,     0,   0, {1,1}    , 12},
  622. {"Polymorph"            ,0x00000020L,    TV_WAND, '-',    /*274*/
  623.     0,     400,    5,   1,  10,    0,   0,     0,   0, {1,1}    , 20},
  624. {"Heal Monster"            ,0x00000040L,    TV_WAND, '-',    /*275*/
  625.     0,       0,    6,   1,  10,    0,   0,     0,   0, {1,1}    ,  2},
  626. {"Haste Monster"        ,0x00000080L,    TV_WAND, '-',    /*276*/
  627.     0,       0,    7,   1,  10,    0,   0,     0,   0, {1,1}    ,  2},
  628. {"Slow Monster"            ,0x00000100L,    TV_WAND, '-',    /*277*/
  629.     0,     500,    8,   1,  10,    0,   0,     0,   0, {1,1}    ,  2},
  630. {"Confuse Monster"        ,0x00000200L,    TV_WAND, '-',    /*278*/
  631.     0,     400,    9,   1,  10,    0,   0,     0,   0, {1,1}    ,  2},
  632. {"Sleep Monster"        ,0x00000400L,    TV_WAND, '-',    /*279*/
  633.     0,     500,    10,   1,  10,    0,   0,     0,   0, {1,1}    ,  7},
  634. {"Drain Life"            ,0x00000800L,    TV_WAND, '-',    /*280*/
  635.     0,    1200,    11,   1,  10,    0,   0,     0,   0, {1,1}    , 50},
  636. {"Trap/Door Destruction"    ,0x00001000L,    TV_WAND, '-',    /*281*/
  637.     0,     100,    12,   1,  10,    0,   0,     0,   0, {1,1}    , 12},
  638. {"Magic Missile"        ,0x00002000L,    TV_WAND, '-',    /*282*/
  639.     0,     200,    13,   1,  10,    0,   0,     0,   0, {1,1}    ,  2},
  640. {"Wall Building"        ,0x00004000L,    TV_WAND, '-',    /*283*/
  641.     0,     400,    14,   1,  10,    0,   0,     0,   0, {1,1}    , 25},
  642. {"Clone Monster"        ,0x00008000L,    TV_WAND, '-',    /*284*/
  643.     0,       0,    15,   1,  10,    0,   0,     0,   0, {1,1}    , 15},
  644. {"Teleport Away"        ,0x00010000L,    TV_WAND, '-',    /*285*/
  645.     0,     350,    16,   1,  10,    0,   0,     0,   0, {1,1}    , 20},
  646. {"Disarming"            ,0x00020000L,    TV_WAND, '-',    /*286*/
  647.     0,     700,    17,   1,  10,    0,   0,     0,   0, {1,1}    , 20},
  648. {"Lightning Balls"        ,0x00040000L,    TV_WAND, '-',    /*287*/
  649.     0,    1200,    18,   1,  10,    0,   0,     0,   0, {1,1}    , 35},
  650. {"Cold Balls"            ,0x00080000L,    TV_WAND, '-',    /*288*/
  651.     0,    1500,    19,   1,  10,    0,   0,     0,   0, {1,1}    , 40},
  652. {"Fire Balls"            ,0x00100000L,    TV_WAND, '-',    /*289*/
  653.     0,    1800,    20,   1,  10,    0,   0,     0,   0, {1,1}    , 50},
  654. {"Stinking Cloud"        ,0x00200000L,    TV_WAND, '-',    /*290*/
  655.     0,     400,    21,   1,  10,    0,   0,     0,   0, {1,1}    ,  5},
  656. {"Acid Balls"            ,0x00400000L,    TV_WAND, '-',    /*291*/
  657.     0,    1650,    22,   1,  10,    0,   0,     0,   0, {1,1}    , 48},
  658. {"Wonder"            ,0x00800000L,    TV_WAND, '-',    /*292*/
  659.     0,     250,    23,   1,  10,    0,   0,     0,   0, {1,1}    ,  2},
  660. {"Light"            ,0x00000001L,    TV_STAFF, '_',    /*293*/
  661.     0,     250,    0,   1,  50,    0,   0,     0,   0, {1,2}    ,  5},
  662. {"Door/Stair Location"        ,0x00000002L,    TV_STAFF, '_',    /*294*/
  663.     0,     350,    1,   1,  50,    0,   0,     0,   0, {1,2}    , 10},
  664. {"Trap Location"        ,0x00000004L,    TV_STAFF, '_',    /*295*/
  665.     0,     350,    2,   1,  50,    0,   0,     0,   0, {1,2}    , 10},
  666. {"Treasure Location"        ,0x00000008L,    TV_STAFF, '_',    /*296*/
  667.     0,     200,    3,   1,  50,    0,   0,     0,   0, {1,2}    ,  5},
  668. {"Object Location"        ,0x00000010L,    TV_STAFF, '_',    /*297*/
  669.     0,     200,    4,   1,  50,    0,   0,     0,   0, {1,2}    ,  5},
  670. {"Teleportation"        ,0x00000020L,    TV_STAFF, '_',    /*298*/
  671.     0,     400,    5,   1,  50,    0,   0,     0,   0, {1,2}    , 20},
  672. {"Earthquakes"            ,0x00000040L,    TV_STAFF, '_',    /*299*/
  673.     0,     350,    6,   1,  50,    0,   0,     0,   0, {1,2}    , 40},
  674. {"Summoning"            ,0x00000080L,    TV_STAFF, '_',    /*300*/
  675.     0,       0,    7,   1,  50,    0,   0,     0,   0, {1,2}    , 10},
  676. {"Summoning"            ,0x00000080L,    TV_STAFF, '_',    /*301*/
  677.     0,       0,    7,   1,  50,    0,   0,     0,   0, {1,2}    , 50},
  678. {"*Destruction*"        ,0x00000200L,    TV_STAFF, '_',    /*302*/
  679.     0,    2500,    8,   1,  50,    0,   0,     0,   0, {1,2}    , 50},
  680. {"Starlight"            ,0x00000400L,    TV_STAFF, '_',    /*303*/
  681.     0,     800,    9,   1,  50,    0,   0,     0,   0, {1,2}    , 20},
  682. {"Haste Monsters"        ,0x00000800L,    TV_STAFF, '_',    /*304*/
  683.     0,       0,    10,   1,  50,    0,   0,     0,   0, {1,2}    , 10},
  684. {"Slow Monsters"        ,0x00001000L,    TV_STAFF, '_',    /*305*/
  685.     0,     800,    11,   1,  50,    0,   0,     0,   0, {1,2}    , 10},
  686. {"Sleep Monsters"        ,0x00002000L,    TV_STAFF, '_',    /*306*/
  687.     0,     700,    12,   1,  50,    0,   0,     0,   0, {1,2}    , 10},
  688. {"Cure Light Wounds"        ,0x00004000L,    TV_STAFF, '_',    /*307*/
  689.     0,     350,    13,   1,  50,    0,   0,     0,   0, {1,2}    ,  5},
  690. {"Detect Invisible"        ,0x00008000L,    TV_STAFF, '_',    /*308*/
  691.     0,     200,    14,   1,  50,    0,   0,     0,   0, {1,2}    ,  5},
  692. {"Speed"            ,0x00010000L,    TV_STAFF, '_',    /*309*/
  693.     0,    1000,    15,   1,  50,    0,   0,     0,   0, {1,2}    , 40},
  694. {"Slowness"            ,0x00020000L,    TV_STAFF, '_',    /*310*/
  695.     0,       0,    16,   1,  50,    0,   0,     0,   0, {1,2}    , 40},
  696. {"Mass Polymorph"        ,0x00040000L,    TV_STAFF, '_',    /*311*/
  697.     0,     750,    17,   1,  50,    0,   0,     0,   0, {1,2}    , 46},
  698. {"Remove Curse"            ,0x00080000L,    TV_STAFF, '_',    /*312*/
  699.     0,     500,    18,   1,  50,    0,   0,     0,   0, {1,2}    , 47},
  700. {"Detect Evil"            ,0x00100000L,    TV_STAFF, '_',    /*313*/
  701.     0,     350,    19,   1,  50,    0,   0,     0,   0, {1,2}    , 20},
  702. {"Curing"            ,0x00200000L,    TV_STAFF, '_',    /*314*/
  703.     0,    1000,    20,   1,  50,    0,   0,     0,   0, {1,2}    , 25},
  704. {"Dispel Evil"            ,0x00400000L,    TV_STAFF, '_',    /*315*/
  705.     0,    1200,    21,   1,  50,    0,   0,     0,   0, {1,2}    , 49},
  706. {"Darkness"            ,0x01000000L,    TV_STAFF, '_',    /*316*/
  707.     0,       0,    22,   1,  50,    0,   0,     0,   0, {1,2}    , 50},
  708. {"Darkness"            ,0x01000000L,    TV_STAFF, '_',    /*317*/
  709.     0,       0,    22,   1,  50,    0,   0,     0,   0, {1,2}    ,  5},
  710. {"[Beginners-Magik]"        ,0x0000007FL,    TV_MAGIC_BOOK, '?',/*318*/
  711.     0,      25,    64,   1,  30,   0,   0,     0,   0, {1,1}    , 40},
  712. {"[Magik I]"            ,0x0000FF80L,    TV_MAGIC_BOOK, '?',/*319*/
  713.     0,     100,    65,   1,  30,   0,   0,     0,   0, {1,1}    , 40},
  714. {"[Magik II]"            ,0x00FF0000L,    TV_MAGIC_BOOK, '?',/*320*/
  715.     0,     400,    66,   1,  30,   0,   0,     0,   0, {1,1}    , 40},
  716. {"[The Mages Guide to Power]"    ,0x7F000000L,    TV_MAGIC_BOOK, '?',/*321*/
  717.     0,     800,    67,   1,  30,   0,   0,     0,   0, {1,1}    , 40},
  718. {"[Beginners Handbook]"        ,0x000000FFL,    TV_PRAYER_BOOK, '?',/*322*/
  719.     0,      25,    64,   1,  30,   0,   0,     0,   0, {1,1}    , 40},
  720. {"[Words of Wisdom]"        ,0x0000FF00L,    TV_PRAYER_BOOK, '?',/*323*/
  721.     0,     100,    65,   1,  30,   0,   0,     0,   0, {1,1}    , 40},
  722. {"[Chants and Blessings]"    ,0x01FF0000L,    TV_PRAYER_BOOK, '?',/*324*/
  723.     0,     300,    66,   1,  30,   0,   0,     0,   0, {1,1}    , 40},
  724. {"[Exorcism and Dispelling]"    ,0x7E000000L,    TV_PRAYER_BOOK, '?',/*325*/
  725.     0,     900,    67,   1,  30,   0,   0,     0,   0, {1,1}    , 40},
  726. {"& Small wooden chest"        ,0x0F000000L,     TV_CHEST, '&',    /*326*/
  727.     0,      20,    1,   1, 250,    0,   0,     0,   0, {2,3}    ,  7},
  728. {"& Large wooden chest"        ,0x15000000L,     TV_CHEST, '&',    /*327*/
  729.     0,      60,    4,   1, 500,    0,   0,     0,   0, {2,5}    , 15},
  730. {"& Small iron chest"        ,0x0F000000L,     TV_CHEST, '&',    /*328*/
  731.     0,     100,    7,   1, 300,    0,   0,     0,   0, {2,4}    , 25},
  732. {"& Large iron chest"        ,0x1F000000L,     TV_CHEST, '&',    /*329*/
  733.     0,     150,    10,   1,1000,    0,   0,     0,   0, {2,6}    , 35},
  734. {"& Small steel chest"        ,0x0F000000L,     TV_CHEST, '&',    /*330*/
  735.     0,     200,    13,   1, 500,    0,   0,     0,   0, {2,4}    , 45},
  736. {"& Large steel chest"        ,0x23000000L,     TV_CHEST, '&',    /*331*/
  737.     0,     250,    16,   1,1000,    0,   0,     0,   0, {2,6}    , 50},
  738. {"& Rat Skeleton"        ,0x00000000L,     TV_MISC, 's',    /*332*/
  739.     0,       0,    1,   1,  10,    0,   0,     0,   0, {1,1}    ,  1},
  740. {"& Giant Centipede Skeleton"    ,0x00000000L,     TV_MISC, 's',    /*333*/
  741.     0,       0,    2,   1,  25,    0,   0,     0,   0, {1,1}    ,  1},
  742. {"some filthy rags"        ,0x00000000L,    TV_SOFT_ARMOR, '~',/*334*/
  743.     0,       0,    63,   1,  20,    0,   0,     1,   0, {0,0}    ,  0},
  744. {"& empty bottle"        ,0x00000000L,     TV_MISC, '!',    /*335*/
  745.     0,       0,    4,   1,   2,    0,   0,     0,   0, {1,1}    ,  0},
  746. {"some shards of pottery"    ,0x00000000L,     TV_MISC, '~',    /*336*/
  747.     0,       0,    5,   1,   5,    0,   0,     0,   0, {1,1}    ,  0},
  748. {"& Human Skeleton"        ,0x00000000L,     TV_MISC, 's',    /*337*/
  749.     0,       0,    7,   1,  50,    0,   0,     0,   0, {1,1}    ,  1},
  750. {"& Dwarf Skeleton"        ,0x00000000L,     TV_MISC, 's',    /*338*/
  751.     0,       0,    8,   1,  60,    0,   0,     0,   0, {1,1}    ,  1},
  752. {"& Elf Skeleton"        ,0x00000000L,     TV_MISC, 's',    /*339*/
  753.     0,       0,    9,   1,  40,    0,   0,     0,   0, {1,1}    ,  1},
  754. {"& Gnome Skeleton"        ,0x00000000L,     TV_MISC, 's',    /*340*/
  755.     0,       0,    10,   1,  25,    0,   0,     0,   0, {1,1}    ,  1},
  756. {"& broken set of teeth"    ,0x00000000L,     TV_MISC, 's',    /*341*/
  757.     0,       0,    11,   1,   3,    0,   0,     0,   0, {1,1}    ,  0},
  758. {"& large broken bone"        ,0x00000000L,     TV_MISC, 's',    /*342*/
  759.     0,       0,    12,   1,   2,    0,   0,     0,   0, {1,1}    ,  0},
  760. {"& broken stick"        ,0x00000000L,     TV_MISC, '~',    /*343*/
  761.     0,       0,    13,   1,   3,    0,   0,     0,   0, {1,1}    ,  0},
  762. /* end of Dungeon items */
  763. /* Store items, which are not also dungeon items, some of these can be
  764.    found above, except that the number is >1 below */
  765. {"& Ration~ of Food"        ,0x00000000L,    TV_FOOD, ',',    /*344*/
  766.  5000,       3,    90,   5,  10,    0,   0,     0,   0, {0,0}    ,  0},
  767. {"& Hard Biscuit~"        ,0x00000000L,    TV_FOOD, ',',    /*345*/
  768.   500,       1,    93,   5,   2,    0,   0,     0,   0, {0,0}    ,  0},
  769. {"& Strip~ of Beef Jerky"    ,0x00000000L,    TV_FOOD, ',',    /*346*/
  770.  1750,       2,    94,   5,   2,    0,   0,     0,   0, {0,0}    ,  0},
  771. {"& Pint~ of Fine Ale"        ,0x00000000L,    TV_FOOD, ',',    /*347*/
  772.   500,       1,    95,   3,  10,    0,   0,     0,   0, {0,0}    ,  0},
  773. {"& Pint~ of Fine Wine"        ,0x00000000L,    TV_FOOD, ',',    /*348*/
  774.   400,       2,    96,   1,  10,    0,   0,     0,   0, {0,0}    ,  0},
  775. {"& Pick"            ,0x20000000L,    TV_DIGGING, '\\',/*349*/
  776.     1,      50,    1,   1, 150,    0,   0,     0,   0, {1,3}    ,  0},
  777. {"& Shovel"            ,0x20000000L,    TV_DIGGING, '\\',/*350*/
  778.     0,      15,    4,   1,  60,    0,   0,     0,   0, {1,2}    ,  0},
  779. {"Identify"            ,0x00000008L,    TV_SCROLL1, '?',/*351*/
  780.     0,      50,  67,   2,   5,    0,   0,     0,   0, {0,0}    ,  0},
  781. {"Light"            ,0x00000020L,    TV_SCROLL1, '?',/*352*/
  782.     0,      15,  69,   3,   5,    0,   0,     0,   0, {0,0}    ,  0},
  783. {"Phase Door"            ,0x00000080L,    TV_SCROLL1, '?',/*353*/
  784.     0,      15,  71,   2,   5,    0,   0,     0,   0, {0,0}    ,  0},
  785. {"Magic Mapping"        ,0x00000800L,    TV_SCROLL1, '?',/*354*/
  786.     0,      40,  75,   2,   5,    0,   0,     0,   0, {0,0}    ,  0},
  787. {"Treasure Detection"        ,0x00004000L,    TV_SCROLL1, '?',/*355*/
  788.     0,      15,  78,   2,   5,    0,   0,     0,   0, {0,0}    ,  0},
  789. {"Object Detection"        ,0x00008000L,    TV_SCROLL1, '?',/*356*/
  790.     0,      15,  79,   2,   5,    0,   0,     0,   0, {0,0}    ,  0},
  791. {"Detect Invisible"        ,0x00080000L,    TV_SCROLL1, '?',/*357*/
  792.     0,      15,  83,   2,   5,    0,   0,     0,   0, {0,0}    ,  0},
  793. {"Blessing"            ,0x00000020L,    TV_SCROLL2, '?',/*358*/
  794.     0,      15,  99,   2,   5,    0,   0,     0,   0, {0,0}    ,  0},
  795. {"Word-of-Recall"        ,0x00000100L,    TV_SCROLL2, '?',/*359*/
  796.     0,     150, 102,   3,   5,    0,   0,     0,   0, {0,0}    ,  0},
  797. {"Cure Light Wounds"        ,0x10001000L,    TV_POTION1, '!',/*360*/
  798.    50,      15,  79,   2,   4,    0,   0,     0,   0, {1,1}    ,  0},
  799. {"Heroism"            ,0x00000010L,    TV_POTION2, '!',/*361*/
  800.     0,      35,  98,   2,   4,    0,   0,     0,   0, {1,1}    ,  0},
  801. {"Boldness"            ,0x00000040L,    TV_POTION2, '!',/*362*/
  802.     0,      10, 100,   2,   4,    0,   0,     0,   0, {1,1}    ,  0},
  803. {"Slow Poison"            ,0x00000800L,    TV_POTION2, '!',/*363*/
  804.     0,      25, 105,   2,   4,    0,   0,     0,   0, {1,1}    ,  0},
  805. {"& Brass Lantern~"        ,0x00000000L,    TV_LIGHT, '~',    /*364*/
  806.  7500,      35,    0,   1,  50,    0,   0,     0,   0, {1,1}    ,  1},
  807. {"& Wooden Torch~"        ,0x00000000L,    TV_LIGHT, '~',    /*365*/
  808.  4000,       2, 192,   5,  30,    0,   0,     0,   0, {1,1}    ,  1},
  809. {"& Flask~ of oil"        ,0x00040000L,    TV_FLASK, '!',    /*366*/
  810.  7500,       3,    64,   5,  10,    0,   0,     0,   0, {2,6}    ,  1},
  811. /* end store items */
  812. /* start doors */
  813. /* Secret door must have same subval as closed door in    */
  814. /* TRAP_LISTB.    See CHANGE_TRAP. Must use & because of stone_to_mud. */
  815. {"& open door"            ,0x00000000L, TV_OPEN_DOOR, '\'',
  816.     0,       0,    1,   1,   0,    0,   0,     0,   0, {1,1}    ,  0},
  817. {"& closed door"        ,0x00000000L, TV_CLOSED_DOOR, '+',
  818.     0,       0,    19,   1,   0,    0,   0,     0,   0, {1,1}    ,  0},
  819. #ifdef ATARI_ST
  820. {"& secret door"        ,0x00000000L, TV_SECRET_DOOR,
  821.    (unsigned char)240, /* 369 */
  822. #else
  823. {"& secret door"        ,0x00000000L, TV_SECRET_DOOR, '#',/* 369 */
  824. #endif
  825.     0,       0,    19,   1,   0,    0,   0,     0,   0, {1,1}    ,  0},
  826. /* end doors */
  827. /* stairs */
  828. {"an up staircase "        ,0x00000000L, TV_UP_STAIR, '<',    /* 370 */
  829.     0,       0,    1,   1,   0,    0,   0,     0,   0, {1,1}    ,  0},
  830. {"a down staircase"        ,0x00000000L, TV_DOWN_STAIR, '>',/* 371 */
  831.     0,       0,    1,   1,   0,    0,   0,     0,   0, {1,1}    ,  0},
  832. /* store door */
  833. /* Stores are just special traps        */
  834. {"General Store"        ,0x00000000L, TV_STORE_DOOR, '1',/* 372 */
  835.     0,       0, 101,   1,   0,    0,   0,     0,   0, {0,0}    ,  0},
  836. {"Armory"            ,0x00000000L, TV_STORE_DOOR, '2',
  837.     0,       0, 102,   1,   0,    0,   0,     0,   0, {0,0}    ,  0},
  838. {"Weapon Smiths"        ,0x00000000L, TV_STORE_DOOR, '3',
  839.     0,       0, 103,   1,   0,    0,   0,     0,   0, {0,0}    ,  0},
  840. {"Temple"            ,0x00000000L, TV_STORE_DOOR, '4',
  841.     0,       0, 104,   1,   0,    0,   0,     0,   0, {0,0}    ,  0},
  842. {"Alchemy Shop"            ,0x00000000L, TV_STORE_DOOR, '5',
  843.     0,       0, 105,   1,   0,    0,   0,     0,   0, {0,0}    ,  0},
  844. {"Magic Shop"            ,0x00000000L, TV_STORE_DOOR, '6',/* 377 */
  845.     0,       0, 106,   1,   0,    0,   0,     0,   0, {0,0}    ,  0},
  846. /* end store door */
  847. /* Traps are just Nasty treasures.                */
  848. /* Traps: Level represents the relative difficulty of disarming;    */
  849. /* and P1 represents the experienced gained when disarmed*/
  850. {"an open pit"            ,0x00000000L, TV_VIS_TRAP, ' ',    /* 378 */
  851.     1,       0,    1,   1,   0,    0,   0,     0,   0, {2,6}    ,50},
  852. {"an arrow trap"        ,0x00000000L, TV_INVIS_TRAP, '^',
  853.     3,       0,    2,   1,   0,    0,   0,     0,   0, {1,8}    ,90},
  854. {"a covered pit"        ,0x00000000L, TV_INVIS_TRAP, '^',
  855.     2,       0,    3,   1,   0,    0,   0,     0,   0, {2,6}    ,60},
  856. {"a trap door"            ,0x00000000L, TV_INVIS_TRAP, '^',
  857.     5,       0,    4,   1,   0,    0,   0,     0,   0, {2,8}    ,75},
  858. {"a gas trap"            ,0x00000000L, TV_INVIS_TRAP, '^',
  859.     3,       0,    5,   1,   0,    0,   0,     0,   0, {1,4}    ,95},
  860. {"a loose rock"            ,0x00000000L, TV_INVIS_TRAP, ';',
  861.     0,       0,    6,   1,   0,    0,   0,     0,   0, {0,0}    ,10},
  862. {"a dart trap"            ,0x00000000L, TV_INVIS_TRAP, '^',
  863.     5,       0,    7,   1,   0,    0,   0,     0,   0, {1,4}    ,110},
  864. {"a strange rune"        ,0x00000000L, TV_INVIS_TRAP, '^',
  865.     5,       0,    8,   1,   0,    0,   0,     0,   0, {0,0}    ,90},
  866. {"some loose rock"        ,0x00000000L, TV_INVIS_TRAP, '^',
  867.     5,       0,    9,   1,   0,    0,   0,     0,   0, {2,6}    ,90},
  868. {"a gas trap"            ,0x00000000L, TV_INVIS_TRAP, '^',
  869.    10,       0,    10,   1,   0,    0,   0,     0,   0, {1,4}    ,105},
  870. {"a strange rune"        ,0x00000000L, TV_INVIS_TRAP, '^',
  871.     5,       0,    11,   1,   0,    0,   0,     0,   0, {0,0}    ,90},
  872. {"a blackened spot"        ,0x00000000L, TV_INVIS_TRAP, '^',
  873.    10,       0,    12,   1,   0,    0,   0,     0,   0, {4,6}    ,110},
  874. {"some corroded rock"        ,0x00000000L, TV_INVIS_TRAP, '^',
  875.    10,       0,    13,   1,   0,    0,   0,     0,   0, {4,6}    ,110},
  876. {"a gas trap"            ,0x00000000L, TV_INVIS_TRAP, '^',
  877.     5,       0,    14,   1,   0,    0,   0,     0,   0, {2,6}    ,105},
  878. {"a gas trap"            ,0x00000000L, TV_INVIS_TRAP, '^',
  879.     5,       0,    15,   1,   0,    0,   0,     0,   0, {1,4}    ,110},
  880. {"a gas trap"            ,0x00000000L, TV_INVIS_TRAP, '^',
  881.     5,       0,    16,   1,   0,    0,   0,     0,   0, {1,8}    ,105},
  882. {"a dart trap"            ,0x00000000L, TV_INVIS_TRAP, '^',
  883.     5,       0,    17,   1,   0,    0,   0,     0,   0, {1,8}    ,110},
  884. {"a dart trap"            ,0x00000000L, TV_INVIS_TRAP, '^',/* 395 */
  885.     5,       0,    18,   1,   0,    0,   0,     0,   0, {1,8}    ,110},
  886. /* rubble */
  887. {"some rubble"            ,0x00000000L, TV_RUBBLE, ':',    /* 396 */
  888.     0,       0,    1,   1,   0,    0,   0,     0,   0, {0,0}    ,  0},
  889. /* mush */
  890. {"& pint~ of fine grade mush"    ,0x00000000L, TV_FOOD, ',',    /* 397 */
  891.  1500,       0,  97,   1,   1,   0,   0,   0,   0, {1,1}  ,  1},
  892. /* Special trap    */
  893. {"a strange rune"        ,0x00000000L, TV_VIS_TRAP, '^',    /* 398 */
  894.     0,       0,    99,   1,   0,    0,   0,     0,   0, {0,0}    , 10},
  895. /* Gold list (All types of gold and gems are defined here)    */
  896. {"copper"            ,0x00000000L, TV_GOLD, '$',    /* 399 */
  897.     0,       3,    1,   1,   0,    0,   0,     0,   0, {0,0}      ,  1},
  898. {"copper"            ,0x00000000L, TV_GOLD, '$',
  899.     0,       4,    2,   1,   0,    0,   0,     0,   0, {0,0}      ,  1},
  900. {"copper"            ,0x00000000L, TV_GOLD, '$',
  901.     0,       5,    3,   1,   0,    0,   0,     0,   0, {0,0}      ,  1},
  902. {"silver"            ,0x00000000L, TV_GOLD, '$',
  903.     0,       6,    4,   1,   0,    0,   0,     0,   0, {0,0}      ,  1},
  904. {"silver"            ,0x00000000L, TV_GOLD, '$',
  905.     0,       7,    5,   1,   0,    0,   0,     0,   0, {0,0}      ,  1},
  906. {"silver"            ,0x00000000L, TV_GOLD, '$',
  907.     0,       8,    6,   1,   0,    0,   0,     0,   0, {0,0}      ,  1},
  908. {"garnets"            ,0x00000000L, TV_GOLD, '*',
  909.     0,       9,    7,   1,   0,    0,   0,     0,   0, {0,0}      ,  1},
  910. {"garnets"            ,0x00000000L, TV_GOLD, '*',
  911.     0,      10,    8,   1,   0,    0,   0,     0,   0, {0,0}      ,  1},
  912. {"gold"                ,0x00000000L, TV_GOLD, '$',
  913.     0,      12,    9,   1,   0,    0,   0,     0,   0, {0,0}      ,  1},
  914. {"gold"                ,0x00000000L, TV_GOLD, '$',
  915.     0,      14,    10,   1,   0,    0,   0,     0,   0, {0,0}      ,  1},
  916. {"gold"                ,0x00000000L, TV_GOLD, '$',
  917.     0,      16,    11,   1,   0,    0,   0,     0,   0, {0,0}      ,  1},
  918. {"opals"            ,0x00000000L, TV_GOLD, '*',
  919.     0,      18,    12,   1,   0,    0,   0,     0,   0, {0,0}      ,  1},
  920. {"sapphires"            ,0x00000000L, TV_GOLD, '*',
  921.     0,      20,    13,   1,   0,    0,   0,     0,   0, {0,0}      ,  1},
  922. {"gold"                ,0x00000000L, TV_GOLD, '$',
  923.     0,      24,    14,   1,   0,    0,   0,     0,   0, {0,0}      ,  1},
  924. {"rubies"            ,0x00000000L, TV_GOLD, '*',
  925.     0,      28,    15,   1,   0,    0,   0,     0,   0, {0,0}      ,  1},
  926. {"diamonds"            ,0x00000000L, TV_GOLD, '*',
  927.     0,      32,    16,   1,   0,    0,   0,     0,   0, {0,0}      ,  1},
  928. {"emeralds"            ,0x00000000L, TV_GOLD, '*',
  929.     0,      40,    17,   1,   0,    0,   0,     0,   0, {0,0}      ,  1},
  930. {"mithril"            ,0x00000000L, TV_GOLD, '$',    /* 416 */
  931.     0,      80,    18,   1,   0,    0,   0,     0,   0, {0,0}      ,  1},
  932. /* nothing, used as inventory place holder */
  933. /* must be stackable, so that can be picked up by inven_carry */
  934. {"nothing"            ,0x00000000L,  TV_NOTHING, ' ',    /* 417 */
  935.    0,       0,  64,   0,   0,   0,   0,   0,   0, {0,0}    ,  0},
  936. /* these next two are needed only for the names */
  937. {"& ruined chest"        ,0x00000000L,   TV_CHEST, '&',    /* 418 */
  938.    0,       0,    0,   1, 250,    0,   0,     0,   0, {0,0}    ,  0},
  939. {""                ,0x00000000L,  TV_NOTHING, ' ',    /* 419 */
  940.    0,       0,   0,   0,   0,   0,   0,   0,   0, {0,0}  ,  0}
  941. };
  942. #endif
  943.  
  944. char *special_names[SN_ARRAY_SIZE] = {
  945.     CNIL,            "(R)",            "(RA)",
  946.     "(RF)",            "(RC)",            "(RL)",
  947.     "(HA)",            "(DF)",            "(SA)",
  948.     "(SD)",            "(SE)",            "(SU)",
  949.     "(FT)",            "(FB)",            "of Free Action",
  950.     "of Slaying",        "of Clumsiness",    "of Weakness",
  951.     "of Slow Descent",    "of Speed",        "of Stealth",
  952.     "of Slowness",        "of Noise",        "of Great Mass",
  953.     "of Intelligence",    "of Wisdom",        "of Infra-Vision",
  954.     "of Might",        "of Lordliness",    "of the Magi",
  955.     "of Beauty",        "of Seeing",        "of Regeneration",
  956.     "of Stupidity",        "of Dullness",        "of Blindness",
  957.     "of Timidness",        "of Teleportation",    "of Ugliness",
  958.     "of Protection",    "of Irritation",    "of Vulnerability",
  959.     "of Enveloping",    "of Fire",        "of Slay Evil",
  960.     "of Dragon Slaying",    "(Empty)",        "(Locked)",
  961.     "(Poison Needle)",    "(Gas Trap)",        "(Explosion Device)",
  962.     "(Summoning Runes)",    "(Multiple Traps)",    "(Disarmed)",
  963.     "(Unlocked)",        "of Slay Animal"
  964. };
  965.  
  966. /* Pairing things down for THINK C.  */
  967. #ifndef RSRC_PART2
  968. int16 sorted_objects[MAX_DUNGEON_OBJ];
  969.  
  970. /* Identified objects flags                    */
  971. int8u object_ident[OBJECT_IDENT_SIZE];
  972. int16 t_level[MAX_OBJ_LEVEL+1];
  973. inven_type t_list[MAX_TALLOC];
  974. inven_type inventory[INVEN_ARRAY_SIZE];
  975. #endif
  976.  
  977. /* Treasure related values                    */
  978. int16 inven_ctr = 0;        /* Total different obj's    */
  979. int16 inven_weight = 0;        /* Cur carried weight    */
  980. int16 equip_ctr = 0;        /* Cur equipment ctr    */
  981. int16 tcptr;            /* Cur treasure heap ptr    */
  982.